package mtm;

import java.util.ArrayList;

public interface PluginAPI {

    public class DataObject {

        private String DataObjectID = "";
        private String DataObjectPluginID = "";
        private Object PluginObject = null;
        private ArrayList<String> DataObjectReferences = new ArrayList<String>();

        public DataObject(String DataObjectPluginID) {
            this.DataObjectPluginID = DataObjectPluginID;
            this.DataObjectID = java.util.UUID.randomUUID().toString();
        }

        public void genNewDataObjectID() {
            this.DataObjectID = java.util.UUID.randomUUID().toString();
        }

        public String getDataObjectID() {
            return DataObjectID;
        }

        public void setDataObjectID(String DataObjectID) {
            this.DataObjectID = DataObjectID;
        }

        public String getDataObjectPluginID() {
            return DataObjectPluginID;
        }

        public void setDataObjectPluginID(String DataObjectPluginID) {
            this.DataObjectPluginID = DataObjectPluginID;
        }

        public ArrayList<String> getDataObjectReferences() {
            return DataObjectReferences;
        }

        public Object getPluginObject() {
            return PluginObject;
        }

        public void setPluginObject(Object PluginObject) {
            this.PluginObject = PluginObject;
        }
    }

    String getPluginName();

    String getPluginID();

    String getPluginDescription();

    void setPluginDataObject(DataObject dto);

    DataObject getPluginDataObject();

    javax.swing.JPanel getPluginPanel(DataObject dto);
}
